'use strict'
const Service=require ('egg').Service
class BillService extends Service{
    async add(params){
        const {ctx,app}=this
        try{
            // 往bill表中，插入一条账单数据 app.mysql.insert 是数据库插件 egg-mysql 封装好的插入数据库操作。
            const result=await app.mysql.insert('bill',params)
           console.log(result,'---result');
            return result
        }catch(error){
            console.log(error);
            return null
        }
    }
async list(id){
    const {ctx,app}=this
    const QUERY_STR='id,pay_type, amount, date, type_id, type_name, remark'
    let sql =`select ${QUERY_STR} from bill where user_id = ${id}`
    try{
        /*app.mysql.query 方法负责执行你的 sql 语句，上述 sql 语句，解释成中文就是，
        “从 bill 表中查询 user_id 等于当前用户 id 的账单数据*/
        const result = await app.mysql.query(sql);
      return result;
    }catch(error){
        console.log(error);
        return null
    }
}

async detail(id,user_id){
    const { ctx, app } = this;
  try {
    const result = await app.mysql.get('bill', { id, user_id })
    return result;
  } catch (error) {
    console.log(error);
    return null;
  }
}
async update(params) {
    const { ctx, app } = this;
    try {
        // 第一个参数为需要操作的数据库表名称 bill；第二个参数为需要更新的数据内容，
        // 这里直接将参数展开；第三个为查询参数，指定 id 和 user_id。
      let result = await app.mysql.update('bill', {
          ...params
      }, {
          id: params.id,
          user_id: params.user_id
      });
      return result;
    } catch (error) {
      console.log(error);
      return null;
    }
  }
  
async delete(id, user_id){
    const {ctx,app}=this
    try{
        let result=await app.mysql.delete('bill', {
            id,
            user_id
        });
        return result
    }catch(error){
        console.log(error);
        return null;
    }
}




}
module.exports=BillService